热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

汉堡包|下层_Java网络编程第一节2:网络编程必备网络知识2之网络协议分层

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java网络编程-第一节2:网络编程必备网络知识2之网络协议分层相关的知识,希望对你有一定的参考价值。文章目

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java网络编程-第一节2:网络编程必备网络知识2之网络协议分层相关的知识,希望对你有一定的参考价值。



文章目录


  • 一:生活中的协议分层
    • (1)生活中的分层1——汉堡包
    • (2)生活中的分层2——打电话

  • 二:网络分层
    • (1)OSI七层模型
    • (2)TCP/IP分层模型

  • 三:OSI参考模型与TCP/IP参考模型比较
    • (1)相同点
    • (2)不同点



一:生活中的协议分层

(1)生活中的分层1——汉堡包

汉堡包属于一种快餐,之所以称之为快餐,是因为它的制作效率高,在一定时间内可以满足不同口感,搭配出不同风格的食物。之所以这样是因为汉堡包采用了分层结构,想要替换哪一步就替换那一部分,每一层与每一层互不干扰


这样带来的好处就是解耦,在软件设计中我们经常提到高内聚,低耦合,汉堡包所做的目的就是这样,我们学习C++也是这样,在C语言中所有代码都是通过调用接口完成,耦合性太强,中间一旦一个环节出现错误,满盘皆输。但是增加了类之后,类于类之间互不干扰,就像STL中的vector,它可以放自定义类型,vector一定能保证它的插入删除接口是不出现错误的,那么最终如果仍然产生问题的话,就一定是你的自定义了类型有问题了


(2)生活中的分层2——打电话

如下图,有两个人通过通信设备进行交谈。在这个过程中,他们使用的语言协议作为麦克风的音频输入,在通信设备那一层转换为电信号,然后将电信号传送到另一个人的通信设备,再向上转化为我们可识别的内容,依次完成通信

上图中反应的就是:上层需要使用下层接口完成通信,而下层需要将数据通过某种方式翻译后反馈给上层

如下图,在实际生活中,我们与人交谈可以使用座机也可以使用手机,并且在通信设备不变的情况下,也可以使用英语交流(前提是双方都采用这种“协议”)

这样做带来的好处就是下层只负责能将数据正确翻译给上层,而上层负责会使用这些接口(就像会使用手机一样),依次达到通信

上面的例子其实只涉及到了两层,实际的协议分层相较它还是比较复杂的,但是所体现的思想是一致的。


二:网络分层

(1)OSI七层模型

OSI将协议分为如下7层,协议规定了每一层各自的作用,也就是说每一层应该干什么。当然这只是一种参考模型,实际的网络协议如TCP/IP在设计时思想上基本一致,但是还是存在区别


  • 物理层:负责0,1比特流(0,1序列)与电压的高低,光的闪灭之间的互换
  • 数据链路层:负责物理层面上互连的,节点之间的通信传输。关键设备就是交换机
  • 网络层:解决跨网络的通信问题,主要负责寻址和路由选择。关键设备就是路由器
  • 传输层:保证传输的稳定,可靠和效率等问题
  • 会话层:负责建立和断开通信连接,以及数据的分割等数据传输相关的管理
  • 表示层:主要负责数据格式的转换
  • 应用层:为应用程序提供服务并规定应用程序通信的相关细节

按照OSI的规定,一次网络通信流程应该是下面这样的


(2)TCP/IP分层模型

OSI规定的七层模型太过复杂,所以TCP/IP协议将网络分为了下面5层(TCP/IP协议是一组协议的集合的代表,只不过这两个协议太过著名,就以他们的名字命名了)。在TCP/IP协议中,每一层都呼叫它的下一层所提供的网络或者接口完成自己的需求


  • 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
  • 数据链路层:: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
  • 网络层:: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
  • 传输层:: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
  • 应用层:: 负责应用程序间沟通。如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等我们的网络编程主要就是针对应用层

可以看出:OSI参考模型注重“通信协议必要的功能是什么”,TCP/IP则强调“在计算机上实现协议应该开发哪种程序”。也就是说操作系统承担了网络协议中非常重要的角色


三:OSI参考模型与TCP/IP参考模型比较

(1)相同点

主要有以下几点


  • 二者都采取分层的体系结构,将庞大且复杂的问题划分为若干较容易处理的、范围较小的问题,而且分层的功能也大体相似。
  • 二者都是基于独立的协议栈的概念
  • 二者都可以解决异构网络的互联,实现世界上不同厂家生产的计算机之间的通信


(2)不同点

①:OSI参考模型的最大贡献就是精确地定义了三个主要概念:服务、协议和接口,这与现代的面向对象程序设计思想非常吻合。而TCP/IP 模型在这三个概念上却没有明确区分,不符合软件工程的思想

②:第二,OSI参考模型产生在协议发明之前,没有偏向于任何特定的协议,通用性良好。但设计者在协议方面没有太多经验,不知道把哪些功能放到哪一层更好;TCP/IP模型正好相反,首先出现的是协议,模型实际上是对已有协议的描述,因此不会出现协议不能匹配模型的情况,但该模型不适合于任何其他非TCP/IP的协议栈

③:TCP/IP模型在设计之初就考虑到了多种异构网的互联问题,并将网际协议 (IP) 作为一个单独的重要层次。OSI参考模型最初只考虑到用一种标准的公用数据网将各种不同的系统互联。OSI参考模型认识到网际协议IP的重要性后,只好在网络层中划分出一个子层来完成类似于TCP/IP模型中的IP的功能

④:重点区别


  • OSI参考模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信
  • TCP/IP模型在网际层仅有一种无连接的通信模式,但传输层支持无连接和面向连接两种模式

推荐阅读
  • c# java socketn 字节流_C#Socket编程详解(一)TCP与UDP简介
    一、TCP与UDP(转载)1、TCP1.1定义TCP(TransmissionControlProtocol)传输控制协议。是一种可靠的、面向连接的协议(eg:打电话)、传输效率低 ... [详细]
  • 三小时掌握计算机网络基础(通俗易懂)
    目录1.网络层次划分2.OSI七层网络模型3.IP地址4.子网掩码及网络划分5.ARPRARP协议6.路由选择协议7.TCPIP协议8.UDP协议 9.DNS协议 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 本文详细介绍了cisco路由器IOS损坏时的恢复方法,包括进入ROMMON模式、设置IP地址、子网掩码、默认网关以及使用TFTP服务器传输IOS文件的步骤。 ... [详细]
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
  • 计算机网络计算机网络分层结构
    为了解决计算机网络复杂的问题,提出了计算机网络分层结构。计算机网络分层结构主要有OSI7层参考模型,TCPIP4层参考模型两种。为什么要分层不同产商 ... [详细]
  • 本人新手,用Unity3D想做一个简单的赛车游戏,现在的问题是转弯的时候很容易出现翻车的情况,求解决思路比如说你的中心是在(0,0,0),你把他设置成(0,-1.0,0)之类的就可 ... [详细]
  • 实例详解ISA防火墙策略元素
    我们在前面的工作中已经实现了ISA2006的代理服务器功能,接下来我们要实现ISA的访问控制功能。很多公司都有控制员工访问外网的需求,例如有的公司不允许 ... [详细]
  • Azkaban(三)Azkaban的使用
    界面介绍首页有四个菜单projects:最重要的部分,创建一个工程,所有flows将在工程中运行。scheduling:显示定时任务executing:显示当前运行的任务histo ... [详细]
  • 前端简史之纵横:Node东出
    引💡Ajax的出现,带来了jQuery时代,而jQuery时代也伴随着Node风暴淡淡退出了历史舞台。如果说Ajax给前端带来了从网页静 ... [详细]
  • TCP/IP详解 卷1 第一章概述
    第一章概述1.2分层网络编程通常分不同层次进行开发,每一层负责不同的通信功能。一个协议族比如TCPIP,通常是一组不同层次上多个协议的组合。一般可以认为 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • php课程Json格式规范需要注意的小细节
    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgramming ... [详细]
  • php网站设计实验报告,php网站开发实训报告
    本文目录一览:1、php动态网站设计的关键技术有哪些软件,及搭建步骤需要哪些页面,分别完成 ... [详细]
  • OSI七层模型、TCP/IP五层模型
    OSI网络互连的七层框架:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层;应用层OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,为用户直接提供各种网 ... [详细]
author-avatar
霸气的萱---_299
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有